package com.shanxia.im.handler.cmd;

import com.shanxia.codec.ProtocolDataBase;
import com.shanxia.codec.cmd.*;
import com.shanxia.im.sdk.server.handler.IMRequestHandler;
import com.shanxia.im.sdk.server.model.IMSession;
import com.shanxia.im.service.IMSessionService;
import com.shanxia.im.service.InvokerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * 接收到充电桩上报指令实现
 */
@Component
public class DispatchCmdHandler implements IMRequestHandler {

	private final Logger logger = LoggerFactory.getLogger(DispatchCmdHandler.class);

	@Resource
	private InvokerService invokerService;

	@Override
	public void process(IMSession session, ProtocolDataBase protocolDataBase) {

		logger.debug("接收到充电桩上报指令={}", protocolDataBase.getCmd());
		logger.debug("接收到充电桩上报数据={}", protocolDataBase);
		// 转发充电桩数据包 到 管理平台
		// 方式一、调用管理平台异步接口；

		invokerService.invoker(session, protocolDataBase);

		// 方式二、MQ队列发布订阅【暂不实现】

	}

}
